/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package muhnes.sizoo.controlador;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import muhnes.sizoo.dal.DepartamentoDao;
import muhnes.sizoo.dal.DepartamentoDaoImpl;
import muhnes.sizoo.dal.MunicipioDao;
import muhnes.sizoo.dal.MunicipioDaoImpl;
import muhnes.sizoo.modelo.Departamento;
import muhnes.sizoo.modelo.Municipio;

@ManagedBean(name = "municipioBean")
@ViewScoped
public class MunicipioBean implements Serializable {

    /**
     * Creates a new instance of MunicipioBean
     */
     private Municipio municipio;
    private List<Municipio> listaMunicipios;
     private List< SelectItem > itemsDepartamentos;
    
    public MunicipioBean() {
        MunicipioDao dao = new MunicipioDaoImpl();
        municipio = new Municipio();
        listaMunicipios = dao.buscarTodos();
    }
    
     public Municipio getMunicipio() {
        return municipio;
    }

    public void setMunicipio(Municipio municipio) {
        this.municipio = municipio;
    }

    public List< Municipio > getListaMunicipios() {
        if( listaMunicipios == null ) {
            MunicipioDao dao = new MunicipioDaoImpl();
            listaMunicipios = dao.buscarTodos();
        }
        return listaMunicipios;
    }
    
    public void prepararAdicion( ActionEvent event  ){
        municipio = new Municipio();
    }
    
    public void prepararModificacion( Municipio municipio ){
        this.municipio = municipio;
    }

    public void agregarMunicipio( ActionEvent event ){
        MunicipioDaoImpl dao = new MunicipioDaoImpl();
       // municipio.setContrasenya( "12345" );
        municipio.setHabilitado( Boolean.TRUE );
        dao.guardar( municipio );
        recrearLista();
    }

    public void actualizarMunicipio( ActionEvent event ){
        MunicipioDaoImpl dao = new MunicipioDaoImpl();
        dao.actualizar( municipio );
        recrearLista();
    }
    
    public void eliminarMunicipio( ActionEvent event ){
        MunicipioDaoImpl dao = new MunicipioDaoImpl();
        dao.eliminar( municipio );
        recrearLista();
    }
    
    public List< Municipio > getTrabajadores() {
        MunicipioDao dao = new MunicipioDaoImpl();
        return dao.buscarTodos();
    }
    
   /* public List< Rol > getRoles() {
        RolDao dao = new RolDaoImpl();
        return dao.buscarTodos();
    }*/
    
        public List< SelectItem > getItemsDepartamentos() {
        if( itemsDepartamentos == null ) {
            itemsDepartamentos = new ArrayList< SelectItem >();
            DepartamentoDao dao = new DepartamentoDaoImpl();
            for( Departamento departamento : dao.buscarTodos() ) {
                SelectItem item = new SelectItem( departamento, departamento.getNombre() );
                itemsDepartamentos.add( item );
            }
        }
        return itemsDepartamentos;
    }
    
    
    
    void recrearLista() {
        listaMunicipios = null;
    }

    
    
    
}// Fin de la clase.
